<template>
	<div class="activeUpload">
		<h3>上传用户头像</h3>
		<div class="upload1">
			<h3>使用 before-upload 限制用户上传的图片格式和大小。</h3>
			<el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
				<img v-if="imageUrl" :src="imageUrl" class="avatar">
				<i v-else class="el-icon-plus avatar-uploader-icon"></i>
			</el-upload>
		</div>
	</div>
</template>

<script>
	export default{
		data(){
			return{
				imageUrl:''
			}
		},
		methods:{
			handleAvatarSuccess(res,file){
				this.imageUrl = URL.createObjectURL(file.raw);
			},
			beforeAvatarUpload(file){
				const isJPG = file.type === 'image/jpeg';
				const isLt2M = file.size/1024/1024 <2;
				
				if(!isJPG){
					this.$message.error('上传头像图片只能是 JPG 格式!');
				}
				
				if(!isLt2M){
					 this.$message.error('上传头像图片大小不能超过 2MB!');
				}
				
				return isJPG && isLt2M;
			}
		}
	}
</script>

<style>
	.avatar-uploader .el-upload {
		border: 1px dashed #d9d9d9;
		border-radius: 6px;
		cursor: pointer;
		position: relative;
		overflow: hidden;
	}
	
	.avatar-uploader .el-upload:hover {
		border-color: #409EFF;
	}
	
	.avatar-uploader-icon {
		font-size: 28px;
		color: #8c939d;
		width: 178px;
		height: 178px;
		line-height: 178px;
		text-align: center;
	}
	
	.avatar {
		width: 178px;
		height: 178px;
		display: block;
	}
</style>